#ifndef GAME_H
#define GAME_H

#include <vector>
using namespace std;

class CObject;

//DATA STRUCTURES
struct waypoint {
    int x;
    int y;
    int s;
};

//DEFINES
#define SMER_HORE 0
#define SMER_DOLE 1
#define SMER_VLAVO 2
#define SMER_VPRAVO 3

#define PSTATE_PLACEMENT_TOWER 2
#define PSTATE_SELECTED 1
#define PSTATE_HOVER 0

//GAME CONSTANTS
const int sdx[4] = {0,0,-1,1};
const int sdy[4] = {-1,1,0,0};

const vector<waypoint> level1 = {{800,100,SMER_VLAVO},{200,100,SMER_DOLE},{200,200,SMER_VPRAVO},
                                 {600,200,SMER_DOLE},{600,400,SMER_VLAVO},{200,400,SMER_DOLE},
                                 {200,500,SMER_VPRAVO}};

const waypoint level1ciel = {800,500,SMER_VLAVO};


//Basic STL functions
#include <vector>
#include <map>
#include <string>
#include <algorithm>
using namespace std;

//SDL Libraries
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_ttf.h>
#include <SDL/SDL_gfxPrimitives.h>

//util.cpp functions
int ObjectDistance(CObject t1, CObject t2);
void BlitSurface(int wx, int wy, SDL_Surface *what, SDL_Surface *where);
SDL_Surface *RenderText(TTF_Font* font, const char *text);
SDL_Surface *RenderText(TTF_Font *font, int text);

#endif // GAME_H
